import torchvision.datasets
from torch import nn

'''
加载预训练的 VGG16 模型 (vgg_16_true) 和未预训练的 VGG16 模型 (vgg_16_false)。
打印预训练的 VGG16 模型结构。
加载 CIFAR10 数据集（测试集），并将其转换为张量格式。
修改预训练的 VGG16 模型分类器部分，新增一个线性层将输出从 1000 类调整为 10 类。
再次打印修改后的 VGG16 模型结构。
修改未预训练的 VGG16 模型分类器部分，将最后一个线性层的输出从 1000 类调整为 10 类。
打印修改后的未预训练 VGG16 模型结构。
'''
# train_data = torchvision.datasets.ImageNet("../image_net", split="train",transform=torchvision.transforms.ToTensor(), download=True)


vgg_16_false = torchvision.models.vgg16(pretrained=False)
vgg_16_true = torchvision.models.vgg16(pretrained=True)
print(vgg_16_true)


dataset = torchvision.datasets.CIFAR10("../data", train=False,
                                       transform=torchvision.transforms.ToTensor(), download=True)
vgg_16_true.classifier.add_module("add_linear", nn.Linear(1000, 10))
print(vgg_16_true)

print(vgg_16_false)
vgg_16_false.classifier[6] = nn.Linear(4096,10)
print(vgg_16_false)